package testes;

import static org.junit.Assert.*;
import iscte.es.copaPaises.businessLayer.Clube;
import iscte.es.copaPaises.businessLayer.Jogador;
import iscte.es.copaPaises.businessLayer.Pais;

import java.util.HashSet;
import java.util.Set;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class ClubeTest {
	private Clube c;
	private String nome;
	private Pais pais;
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		c=new Clube();
		nome="SLB";
		pais=new Pais();
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testClube() {
		assertTrue("Clube()",Clube.allInstances.contains(c));
	}

	@Test
	public void testClubeStringPais() {
		c=new Clube(nome,pais);
		assertTrue("Clube(nome,pais)",Clube.allInstances.contains(c));
	}

	@Test
	public void testNome() {
		c.setNome(nome);
		assertEquals("Setter/Getter Clube.nome()",nome,c.nome());
	}

	@Test
	public void testPais() {
		c.setPais(pais);
		assertEquals("Setter/Getter Clube.pais()",pais,c.pais());
	}

	@Test
	public void testJogadores() {
		Jogador j1=new Jogador();
		Jogador j2=new Jogador();
		Jogador j3=new Jogador();
		Set<Jogador> jogadores=new HashSet<Jogador>();
		jogadores.add(j1);jogadores.add(j2);
		c.setJogadores(jogadores);
		assertEquals("Setter/Getter Equipa.jogadores()",c.jogadores(),jogadores);	
	}

	@Test
	public void testInicializa() {
		c.inicializa(nome, pais);
		assertEquals("Clube.inicializa(nome, pais)",pais,c.pais());
		assertEquals("Clube.inicializa(nome, pais)",nome,c.nome());
		
	}

	@Test
	public void testToString() {
		c=new Clube(nome,pais);
		assertEquals("Clube.toString",c.toString(),"Clube [nome=" + nome + ", pais=" + pais + "]\n");
	}

}
